home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * %%File: html.c
- *
- * Copyright (c) 1995-1999 Bertrand LE QUELLEC
- *
- * http://perso.wanadoo.fr/blq
- * blq@wanadoo.fr
- */
-
-
- #include <stdio.h>
-
- #include "lib.h"
-
- #include "ansi_map.h"
- #include "ansi_mac.h"
- #include "html_map.h"
-
- #define SOURCE_HTML 1
- #include "html.h"
-
-
- static char StringTmp[MLEN * 3];
-
-
- /*
- * %%Function: TitreHTML
- *
- * Envoie sur le file pointeur un titre HTML.
- */
- void TitreHTML(char * titre, FILE * out)
- {
- FILE * sortie = (FILE *)0;
-
-
- if(!(sortie = out))
- #ifdef UNIX_SRC
- sortie = stdout;
- #else
- return;
- #endif
-
- fprintf(sortie, "\n%s%s%s%s%s\n",
- TAG_HEAD, TAG_TITLE, titre, TAGf_TITLE, TAGf_HEAD);
- }
-
- /*
- * %%Function: EnteteHTML
- *
- * Envoie sur le file pointeur une entete HTML par defaut.
- */
- void EnteteHTML(char * tag, FILE * out)
- {
- FILE * sortie = (FILE *)0;
-
-
- if(!(sortie = out))
- #ifdef UNIX_SRC
- sortie = stdout;
- #else
- return;
- #endif
-
- fprintf(sortie, "\n%s\n%s\n%s%s\n",
- TAG_DTD, TAG_HTML, TAG_BODY, tag);
- }
-
- /*
- * %%Function: BgColorHTML
- */
- void BgColorHTML(char * couleur, FILE * out)
- {
- FILE * sortie = (FILE *)0;
-
-
- if(!(sortie = out))
- #ifdef UNIX_SRC
- sortie = stdout;
- #else
- return;
- #endif
-
- fprintf(sortie, "%s\"%s\"%s\n", TAG_BGCOLOR, couleur, TAGf);
- }
-
- /*
- * %%Function: BackgroundHTML
- */
- void BackgroundHTML(char * image, FILE * out)
- {
- FILE * sortie = (FILE *)0;
-
-
- if(!(sortie = out))
- #ifdef UNIX_SRC
- sortie = stdout;
- #else
- return;
- #endif
-
- fprintf(sortie, "%s\n%s\"%s\"%s\n",
- TAG_BODY, TAG_BACKGROUND, image, TAGf);
- }
-
- /*
- * %%Function: CelluleColHTML
- *
- * Envoie sur le file pointeur une cellule de tableau avec un
- * positionnment sur le nombre de colone.
- */
- void CelluleColHTML(char * cellule, FILE * out, int nbcol)
- {
- FILE * sortie = (FILE *)0;
-
-
- if(!(sortie = out))
- #ifdef UNIX_SRC
- sortie = stdout;
- #else
- return;
- #endif
-
- if(cellule)
- {
- fprintf(sortie, "%s%d%s\n%s\n%s\n",
- TAG_TD_COLSPAN, nbcol, TAGf, cellule, TAGf_TD);
- }
- }
-
-
- /*
- * %%Function: CelluleHTML
- *
- * Envoie sur le file pointeur une cellule de tableau.
- */
- void CelluleHTML(char * cellule, FILE * out)
- {
- FILE * sortie = (FILE *)0;
-
-
- if(!(sortie = out))
- #ifdef UNIX_SRC
- sortie = stdout;
- #else
- return;
- #endif
-
- if(cellule)
- {
- fprintf(sortie, "%s\n%s\n%s\n", TAG_TD, cellule, TAGf_TD);
- }
- }
-
- /*
- * %%Function: CelluleCenterHTML
- *
- * Envoie sur le file pointeur une cellule centree de tableau.
- */
- void CelluleCenterHTML(char * cellule, FILE * out)
- {
- FILE * sortie = (FILE *)0;
-
-
- if(!(sortie = out))
- #ifdef UNIX_SRC
- sortie = stdout;
- #else
- return;
- #endif
-
- if(cellule)
- {
- fprintf(sortie, "%s\n%s\n%s\n", TAG_TD_CENTER, cellule, TAGf_TD);
- }
- }
-
- /* -------------------------------------------------------------------------- */
-
-
- /*
- * %%Function: GetFontSize
- *
- * renvoie un debut de FONT SIZE alloue.
- */
- char * GetFontSize(int taille)
- {
- switch(taille)
- {
- case 0:
- case 1:
- case 2:
- break;
-
- case 3:
- case 4:
- sprintf(StringTmp, "\n%s\n", TAG_FONT1);
- return StringTmp;
- break;
-
- case 5:
- case 6:
- case 7:
- case 8:
- sprintf(StringTmp, "\n%s\n", TAG_FONT2);
- return StringTmp;
- break;
-
- case 9:
- sprintf(StringTmp, "\n%s\n", TAG_FONT3);
- return StringTmp;
- break;
-
- default:
- break;
- }
- }
-
- /*
- * %%Function: GetTableHTML
- *
- * renvoie un debut de tableau alloue.
- */
- char * GetTableHTML(void)
- {
- sprintf(StringTmp, "\n%s\n", TAG_TABLE_BWIDTH);
- return StringTmp;
- }
-
- /*
- * %%Function: GetImgSrcHTML
- *
- * Renvoie le code HTML correspondant a une reference image.
- */
- char * GetImgSrcHTML(char * chaine)
- {
- if(chaine)
- {
- sprintf(StringTmp, "%s\"%s\">", TAG_IMG_SRC, chaine);
- return StringTmp;
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetANameHTML
- *
- * Renvoie le code HTML correspondant a une reference interne arrivee.
- */
- char * GetANameHTML(char * chaine)
- {
- if(chaine)
- {
- if (strlen(chaine) > 0)
- {
- sprintf(StringTmp, "%s\"%s\">%s", TAG_ANAME, libDelQuote(chaine), chaine);
- return StringTmp;
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetANameHTML2
- *
- * Renvoie le code HTML correspondant a une reference interne arrivee.
- */
- char * GetANameHTML2(char * chaine)
- {
- if(chaine)
- {
- if (strlen(chaine) > 0)
- {
- sprintf(StringTmp, "%s\"%s\">", TAG_ANAME, libDelQuote(chaine));
- return StringTmp;
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetAHNameHTML
- *
- * Renvoie le code HTML correspondant a une reference depart pour NAME.
- */
- char * GetAHNameHTML(char * chaine)
- {
- if(chaine)
- {
- if (strlen(chaine) > 0)
- {
- sprintf(StringTmp, "%s\"#%s\">%s%s", TAG_HREF, libDelQuote(chaine), chaine, TAGf_HREF);
- return StringTmp;
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetAHNameHTML2
- *
- * Renvoie le code HTML correspondant a une reference depart pour NAME.
- */
- char * GetAHNameHTML2(char * dest, char * chaine)
- {
- if(chaine)
- {
- if (strlen(chaine) > 0)
- {
- sprintf(StringTmp, "%s\"#%s\">%s%s", TAG_HREF, dest, chaine, TAGf_HREF);
- return StringTmp;
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetAHNameTargetHTML
- *
- * Renvoie le code HTML correspondant a une reference depart pour NAME dans une frame cible.
- */
- char * GetAHNameTargetHTML(char * fichier, char * target, char * chaine)
- {
- if(chaine)
- {
- if (strlen(chaine) > 0)
- {
- sprintf(StringTmp, "%s\"%s#%s\" TARGET=%s>%s%s", TAG_HREF, fichier, libDelQuote(chaine), target, chaine, TAGf_HREF);
- return StringTmp;
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetHrefHTML
- *
- * Renvoie le code HTML correspondant a une reference externe au fichier.
- */
- char * GetHrefHTML(char * ref, char * chaine)
- {
- if(chaine && ref)
- {
- if (strlen(chaine) > 0 && strlen(ref) > 0)
- {
- sprintf(StringTmp, "%s\"%s\">%s%s", TAG_HREF, ref, chaine, TAGf_HREF);
- return StringTmp;
- }
- else
- {
- if (strlen(chaine) > 0)
- {
- sprintf(StringTmp, "%s", chaine);
- return StringTmp;
- }
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetHrefHTML2
- *
- * Renvoie le code HTML correspondant a une reference externe au fichier.
- */
- char * GetHrefHTML2(char * ref, char * chaine)
- {
- if(chaine && ref)
- {
- if (strlen(chaine) > 0 && strlen(ref) > 0)
- {
- sprintf(StringTmp, "%s\"%s\" TARGET=_top>%s%s", TAG_HREF, ref, chaine, TAGf_HREF);
- return StringTmp;
- }
- else
- {
- if (strlen(chaine) > 0)
- {
- sprintf(StringTmp, "%s", chaine);
- return StringTmp;
- }
- }
- }
-
- return (char *)0;
- }
-
-
- /*
- * %%Function: GetNiveauHTML
- *
- * Renvoie le code HTML correspondant a un niveau.
- */
- char * GetNiveauHTML(int niveau)
- {
- switch(niveau)
- {
- case 0:
- case 1:
- case 41:
- return TAG_H1;
-
- case 2:
- case 42:
- return TAG_H2;
-
- case 3:
- case 43:
- return TAG_H3;
-
- case 4:
- case 44:
- return TAG_H4;
-
- case 5:
- case 45:
- return TAG_H5;
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: GetNiveauHTMLf
- *
- * Renvoie le code HTML (fermant) correspondant a un niveau.
- */
- char * GetNiveauHTMLf(int niveau)
- {
- switch(niveau)
- {
- case 0:
- case 1:
- case 41:
- return TAGf_H1;
-
- case 2:
- case 42:
- return TAGf_H2;
-
- case 3:
- case 43:
- return TAGf_H3;
-
- case 4:
- case 44:
- return TAGf_H4;
-
- case 5:
- case 45:
- return TAGf_H5;
- }
-
- return (char *)0;
- }
-
-
- /* -------------------------------------------------------------------------- */
-
-
- /*
- * %%Function: TokenToHTML
- *
- * Renvoie le code HTML correspondant a un token.
- */
- char * TokenToHTML(char * token)
- {
- register int i = 0;
-
-
- if(token)
- {
- while(tokenTag[i].token)
- {
- if(strcmp(tokenTag[i++].token, token) == 0)
- return tokenTag[--i].tagHTML;
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: HTMLToToken
- *
- * Renvoie le token correspondant a un code HTML.
- */
- char * HTMLToToken(char * html)
- {
- register int i = 0;
-
-
- if(html)
- {
- while(tokenTag[i].tagHTML)
- {
- if(strcmp(tokenTag[i++].tagHTML, html) == 0)
- return tokenTag[--i].token;
- }
- }
-
- return (char *)0;
- }
-
-
- /* ------------------------------------------------------------------------- */
-
-
- /*
- * %%Function: HexaToToken
- *
- * Renvoie le token correspondant au code Hexa.
- */
- char * HexaToToken(char * hexa)
- {
- register int i = 0;
-
-
- if(hexa)
- {
- while(ansiMapG[i].hexa)
- {
- if(strcmp(ansiMapG[i++].hexa, hexa) == 0)
- {
- return ansiMapG[i-1].token;
- }
- }
-
- i = 0;
-
- while(ansiMacG[i].hexa)
- {
- if(strcmp(ansiMacG[i++].hexa, hexa) == 0)
- {
- return ansiMacG[i-1].token;
- }
- }
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: TokenToHexa
- *
- * Renvoie le code hexa correspondant au token.
- */
- char * TokenToHexa(char * token)
- {
- register int i = 0;
-
-
- if(token)
- {
- while(ansiMapG[i].token)
- {
- if(strcmp(ansiMapG[i++].token, token) == 0)
- {
- return ansiMapG[i-1].hexa;
- }
- }
-
- i = 0;
-
- while(ansiMacG[i].token)
- {
- if(strcmp(ansiMacG[i++].token, token) == 0)
- {
- return ansiMacG[i-1].hexa;
- }
- }
- }
-
- return (char *)0;
- }
-
-
- /* ------------------------------------------------------------------------- */
-
-
- /*
- * %%Function: HTMLToHexa
- *
- * Renvoie le code hexa correspondant au code html.
- */
- char * HTMLToHexa(char * html)
- {
- if(html)
- {
- return TokenToHexa(HTMLToToken(html));
- }
-
- return (char *)0;
- }
-
- /*
- * %%Function: HexaToHTML
- *
- * Renvoie le code html correspondant au code Hexa.
- */
- char * HexaToHTML(char * hexa)
- {
- if(hexa)
- {
- return TokenToHTML(HexaToToken(hexa));
- }
-
- return (char *)0;
- }
-
-